home *** CD-ROM | disk | FTP | other *** search
/ Precision Software Appli…tions Silver Collection 1 / Precision Software Applications Silver Collection Volume One (PSM) (1993).iso / windows / games / bjack1.exe / GLOBAL.BAS < prev    next >
BASIC Source File  |  1991-11-19  |  37KB  |  855 lines

  1. '********************* Wired On BlackJack ************************
  2. '**                                                             **
  3. '**                                                             **
  4. '** This program is the client end of Wired On BlackJack. It    **
  5. '** provides the user interface and message processing          **
  6. '** for all client interaction. The high-level overview of the  **
  7. '** the program is contained in two conceptual modules. The     **
  8. '** of these is embodied in the Process_Messages() function in  **
  9. '** module1.bas. The second is the UI based on VB's form        **
  10. '** designing capabilities.                                     **
  11. '**                                                             **
  12. '** Process_Messages receives, interprets, and acts upon        **
  13. '** messages received from the dealer.                          **
  14. '**                                                             **
  15. '** The UI obtains desired actions from the user, interprets    **
  16. '** them, and processes them. The processing of these messages  **
  17. '** may include sending messages to the dealer. Most of the UI  **
  18. '** is contained in FORM1.FRM.                                  **
  19. '**                                                             **
  20. '** The communication vehicle with the dealer is a LAN MANAGER  **
  21. '** device known as Named Pipes. See procedures Open_Pipe,      **
  22. '** Close_Connection, Write_Packet, and Read_Packet to see      **
  23. '** how such pipes are accessed from VB.                        **
  24. '**                                                             **
  25. '** The program also used the VB Lan Manager Toolkit which      **
  26. '** provides high-level access to many LAN MANAGER functions    **
  27. '** in an easy to use fashion. See Get_Server and Get_Name      **
  28. '** for examples.                                               **
  29. '**                                                             **
  30. '*****************************************************************
  31.  
  32.  
  33.  
  34. '*****************************************************************
  35. '**           Microsoft Visual Basic LAN Manager Toolkit        **
  36. '**            Copyright(c) Microsoft Corp., 1991               **
  37. '*****************************************************************
  38.  
  39. '********************************************************************
  40. '*                                                                  *
  41. '*  About this file ...  NETCONS.TXT                                *
  42. '*                                                                  *
  43. '*  This file contains constants used throughout the LAN Manager    *
  44. '*  API header files.  It should be included in the global module   *
  45. '*  of any Visual Basic program that is going to call a LAN Manager *
  46. '*  API.                                                            *
  47. '*                                                                  *
  48. '********************************************************************
  49.  
  50.  
  51. Global Const ASSUMEBLEN = 255             '* this constant is used for the
  52.                       '  record structure field with
  53.                       '  unknown size (mostly list of
  54.                       '  multiple information     *
  55.  
  56. Global Const ASSUMESLEN = 50             '* this constant is used for the
  57.                      '  record structure field with
  58.                      '  unknown size (mostly single infor-
  59.                      '  mation    *
  60. Global Const CNLEN = 15             '* Computer name length     *
  61. Global Const CNLEN8 = (CNLEN + 1) * 8 - 1 '* Maximum 8 computer names *
  62.                       '  length separated by comma *
  63.  
  64. Global Const UNCLEN = CNLEN + 2           '* UNC computer name length *
  65. Global Const NNLEN = 12             '* 8.3 Net name length      *
  66. Global Const RMLEN = UNCLEN + 1 + NNLEN '* Maximum remote name length *
  67.  
  68.  
  69. Global Const SNLEN = 15             '* Service name length      *
  70. Global Const STXTLEN = 63           '* Service text length      *
  71.  
  72. Global Const PATHLEN = 260
  73. Global Const VBLMPATHLEN = PATHLEN - 1 '* VB pathlen without terminating NULL
  74.     
  75.  
  76. Global Const PRINTERNAME_SIZE = 32  '* printer name
  77. Global Const PRINTERNAME_SIZE10 = (PRINTERNAME_SIZE + 1) * 10 - 1
  78.                     '* 10 printer names separated by commas
  79. Global Const DRIV_NAME_SIZE = 8  '* device driver name
  80. Global Const DRIV_NAME_SIZE10 = (DRIV_NAME_SIZE + 1) * 10 - 1
  81.                         '* 10 device driver name w/ commas
  82. Global Const DRIV_DEVICENAME_SIZE = 31 '* Device driver data string
  83.  
  84. Global Const DEVLEN = 8             '* Device name length       *
  85.  
  86. Global Const DNLEN = CNLEN          '* Maximum domain name length *
  87. Global Const DNLEN10 = (DNLEN + 1) * 10 - 1 '* Maximum 10 domain names  *
  88.                         '* length separated by space *
  89. Global Const CCHMAXPATHCOMP = 256  '* queue name
  90.  
  91. Global Const EVLEN = 16             '* event name length        *
  92. Global Const JOBSTLEN = 80          '* status length in print job *
  93. Global Const AFLEN = 64             '* Maximum length of alert  *
  94.                             '* names field              *
  95. Global Const UNLEN = 20             '* Maximum user name length *
  96. Global Const GNLEN = UNLEN          '* Group name               *
  97. Global Const PWLEN = 14             '* Maximum password length  *
  98. Global Const SHPWLEN = 8            '* Share password length    *
  99. Global Const CLTYPE_LEN = 12        '* Length of client type string *
  100.  
  101.  
  102. Global Const MAXCOMMENTSZ = 48      '* server & share comment length *
  103.  
  104. Global Const QNLEN = 12             '* Queue name maximum length     *
  105. Global Const PDLEN = 8              '* Print destination length      *
  106. Global Const PDLEN10 = (PDLEN + 1) * 10 - 1  '* max of 10 Print destination
  107.                          ' length  separated by space   *
  108. Global Const DTLEN = 9              '* Spool file data type          *
  109.                             '* e.g. IBMQSTD,IBMQESC,IBMQRAW  *
  110. Global Const ALERTSZ = 128          '* size of alert string in server *
  111.  
  112. Global Const INTSIZE = 2
  113. Global Const LONGSIZE = 4
  114. Global Const SINGLESIZE = 4
  115. Global Const DOUBLESIZE = 8
  116.  
  117. Global Const MAXDEVENTRIES = INTSIZE * 8 '* Max number of device entries   *
  118.                                  '* We use int bitmap to represent *
  119.  
  120. Global Const HOURS_IN_WEEK = 168         '* for struct user_info_2 in UAS *
  121. Global Const MAXWORKSTATIONS = 8            '* for struct user_info_2 in UAS *
  122.  
  123. Global Const NETBIOS_NAME_LEN = 16          '* NetBIOS net name *
  124.  
  125.  
  126.  
  127. '*
  128. '*      Constants used with encryption
  129. '*
  130.  
  131. Global Const CRYPT_KEY_LEN = 7
  132. Global Const CRYPT_TXT_LEN = 8
  133. Global Const ENCRYPTED_PWLEN = 16
  134. Global Const SESSION_PWLEN = 24
  135. Global Const SESSION_CRYPT_KLEN = 21
  136.  
  137. '*
  138. '*  Value to be used with SetInfo calls to allow setting of all
  139. '*  settable parameters (parmnum zero option)
  140. '*
  141.  
  142. '*
  143. '*      Message File Names
  144. '*
  145.  
  146. Global Const MESSAGE_FILE = "NETPROG\\NET.MSG"
  147. Global Const MESSAGE_FILENAME = "NET.MSG"
  148. Global Const OS2MSG_FILE = "NETPROG\\OSO001.MSG"
  149. Global Const OS2MSG_FILENAME = "OSO001.MSG"
  150. Global Const HELP_MSG_FILE = "NETPROG\\NETH.MSG"
  151. Global Const HELP_MSG_FILENAME = "NETH.MSG"
  152. Global Const NMP_MSG_FILE = "NETPROG\\NMP.MSG"
  153. Global Const NMP_MSG_FILENAME = "NMP.MSG"
  154.  
  155. Global Const MESSAGE_FILE_BASE = "NETPROG\\NET00000"
  156. Global Const MESSAGE_FILE_EXT = ".MSG"
  157.  
  158.  
  159.  
  160. Global Const NMP_LOW_END = 230
  161. Global Const NMP_HIGH_END = 240
  162.  
  163. Global Const NULL = 0
  164.  
  165.  
  166. Global Const PUNAVAIL = NULL
  167.  
  168. Global Const ERROR_MORE_DATA = 234      '* Additional data is available. *
  169.  
  170. '*****************************************************************
  171. '**           Microsoft Visual Basic LAN Manager Toolkit        **
  172. '**               Copyright(c) Microsoft Corp., 1991            **
  173. '*****************************************************************
  174.  
  175. '********************************************************************
  176. '*                                                                  *
  177. '*  About this file ...  VBLANMAN.TXT                               *
  178. '*                                                                  *
  179. '*  This file contains information about the VBLANMAN support DLL.  *
  180. '*                                                                  *
  181. '*      Function prototypes.                                        *
  182. '*                                                                  *
  183. '*      Definition of special values.                               *
  184. '*                                                                  *
  185. '********************************************************************
  186.  
  187. '****************************************************************
  188. '*                                                              *
  189. '*                  Function prototypes - VBLANMAN.DLL          *
  190. '*                                                              *
  191. '****************************************************************
  192.  
  193. Declare Function VBTypeToBuffer% Lib "vblanman.dll" (ByVal Dest&, ByVal DestLen%, Src As Any, ByVal SrcLen%, ByVal FormatString$)
  194.  
  195. Declare Function BufferToVBType% Lib "vblanman.dll" (Dest As Any, ByVal DestLen%, ByVal Src&, ByVal SrcLen%, ByVal FormatString$)
  196.  
  197. Declare Function EnumBufferToVBArray% Lib "vblanman.dll" (Dest As Any, ByVal DestLen%, ByVal Src&, ByVal SrcLen%, ByVal FormatString$, ByVal NumEnts%)
  198.  
  199. Declare Function CreateLMBuffer& Lib "vblanman.dll" (ByVal FormatString$, ByVal Entries%, BufferSize%)
  200.  
  201. Declare Function FreeLMBuffer% Lib "vblanman.dll" (ByVal BufferPointer&)
  202.  
  203. Declare Function CFormatSize% Lib "vblanman.dll" (ByVal FormatString$, ByVal Flag%)
  204.  
  205. Declare Function VBFormatSize% Lib "vblanman.dll" (ByVal FormatString$, ByVal Flag%)
  206.  
  207. Declare Function LMError$ Lib "vblanman.dll" Alias "LMError$" (ByVal ErrorCode%)
  208.  
  209.  
  210. '****************************************************************
  211. '*                                                              *
  212. '*              Special values and constants - VBLANMAN.DLL     *
  213. '*                                                              *
  214. '****************************************************************
  215.  
  216. '*
  217. '*      Flag definitions for CFormatSize and VBFormatSize
  218. '*
  219.  
  220. Global Const TOTAL_SIZE = 0     'Get total size (including var length strings)
  221. Global Const FIXED_LEN_SIZE = 1 'Get fixed length size (no var length strings)
  222.  
  223. '*
  224. '*      Format strings for basic data types
  225. '*
  226.  
  227. Global Const FMT_INTEGER = "I"
  228. Global Const FMT_LONG = "L"
  229. Global Const FMT_STRING = "S"
  230. Global Const FMT_POINTER = "P"
  231.  
  232.  
  233. '*****************************************************************
  234. '**           Microsoft Visual Basic LAN Manager Toolkit        **
  235. '**            Copyright(c) Microsoft Corp., 1991               **
  236. '*****************************************************************
  237.  
  238. '********************************************************************
  239. '*                                                                  *
  240. '*  About this file ...  SERVER.TXT                                 *
  241. '*                                                                  *
  242. '*  This file contains information about the NetServer APIs.        *
  243. '*                                                                  *
  244. '*      Function prototypes.                                        *
  245. '*                                                                  *
  246. '*      Data structure templates.                                   *
  247. '*                                                                  *
  248. '*      Definition of special values.                               *
  249. '*                                                                  *
  250. '*                                                                  *
  251. '*  NOTE:  You must include NETCONS.TXT before this file, since this*
  252. '*         file depends on values defined in NETCONS.TXT.           *
  253. '*                                                                  *
  254. '********************************************************************
  255.  
  256. '****************************************************************
  257. '*                                                              *
  258. '*              Function prototypes                             *
  259. '*                                                              *
  260. '****************************************************************
  261.  
  262. Declare Function NetServerAdminCommand% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal pszCommand$, psResult%, ByVal pszBuffer$, ByVal cbBuffer%, pcbReturned%, pcbTotalAvail%)
  263.  
  264. Declare Function NetServerDiskEnum% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, pcEntriesRead%, pcTotalAvail%)
  265.          'pbBuffer will contain consecutive ASCIIZ strings indicating
  266.          'the list of disk drive names.  There is currently no direct
  267.          'method for handling this type of buffer construct.
  268.  
  269. Declare Function NetServerEnum2% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, pcEntriesRead%, pcTotalAvail%, ByVal flServerType&, ByVal pszDomain$)
  270.  
  271. Declare Function NetServerGetInfo% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, pcbTotalAvail%)
  272.  
  273. Declare Function NetServerSetInfo% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, ByVal sParmNum%)
  274.  
  275.  
  276. '****************************************************************
  277. '*                                                              *
  278. '*              Data structure templates                        *
  279. '*                                                              *
  280. '****************************************************************
  281.  
  282. Type server_info_0
  283.     sv0_name As String * CNLEN  '* Server name              *
  284. End Type         '* server_info_0 *
  285.  
  286. Global Const FMT_server_info_0 = "S15"
  287.  
  288.  
  289. Type server_info_1
  290.     sv1_name As String * CNLEN
  291.     sv1_version_major As String * 1             '* Major version # of net   *
  292.     sv1_version_minor As String * 1             '* Minor version # of net   *
  293.     sv1_type As Long                            '* Server type              *
  294.     sv1_comment As String
  295. End Type         '* server_info_1 *
  296.  
  297. Global Const FMT_server_info_1 = "S15B1B1LP48"
  298.  
  299.  
  300. Type server_info_2
  301.     sv2_name As String * CNLEN
  302.     sv2_version_major As String * 1
  303.     sv2_version_minor As String * 1
  304.     sv2_type As Long
  305.     sv2_comment As String
  306.     sv2_ulist_mtime As Long'* User list, last modification time    *
  307.     sv2_glist_mtime As Long '* Group list, last modification time   *
  308.     sv2_alist_mtime As Long '* Access list, last modification time  *
  309.     sv2_users As Integer       '* max number of users allowed          *
  310.     sv2_disc As Integer     '* auto-disconnect timeout(in minutes)  *
  311.     sv2_alerts As String    '* alert names (semicolon separated)
  312.     sv2_security As Integer    '* SV_USERSECURITY or SV_SHARESECURITY  *
  313.     sv2_auditing As Integer    '* 0 = no auditing; nonzero = auditing  *
  314.     sv2_numadmin As Integer    '* max number of administrators allowed *
  315.     sv2_lanmask As Integer     '* bit mask representing the srv'd nets *
  316.     sv2_hidden As Integer      '* 0 = visible; nonzero = hidden        *
  317.     sv2_announce As Integer    '* visible server announce rate (sec)   *
  318.     sv2_anndelta As Integer    '* announce randomize interval (sec)    *
  319.     sv2_guestacct As String * UNLEN '* name of guest account           *
  320.     sv2_pad1 As String * 1          '* Word alignment pad byte         *
  321.     sv2_userpath As String     '* ASCIIZ path to user directories*
  322.     sv2_chdevs As Integer      '* max # shared character devices       *
  323.     sv2_chdevq As Integer      '* max # character device queues        *
  324.     sv2_chdevjobs As Integer   '* max # character device jobs          *
  325.     sv2_connections As Integer '* max # of connections                 *
  326.     sv2_shares As Integer      '* max # of shares                      *
  327.     sv2_openfiles As Integer   '* max # of open files                  *
  328.     sv2_sessopens As Integer   '* max # of open files per session      *
  329.     sv2_sessvcs As Integer     '* max # of virtual circuits per client *
  330.     sv2_sessreqs As Integer    '* max # of simul. reqs. from a client  *
  331.     sv2_opensearch As Integer   '* max # of open searches              *
  332.     sv2_activelocks As Integer '* max # of active file locks           *
  333.     sv2_numreqbuf As Integer   '* number of server (standard) buffers  *
  334.     sv2_sizreqbuf As Integer   '* size of svr (standard) bufs (bytes)  *
  335.     sv2_numbigbuf As Integer   '* number of big (64K) buffers          *
  336.     sv2_numfiletasks As Integer'* number of file worker processes      *
  337.     sv2_alertsched As Integer  '* alert counting interval (minutes)    *
  338.     sv2_erroralert As Integer  '* error log alerting threshold         *
  339.     sv2_logonalert As Integer  '* logon violation alerting threshold   *
  340.     sv2_accessalert As Integer '* access violation alerting threshold  *
  341.     sv2_diskalert As Integer   '* low disk space alert threshold (KB)  *
  342.     sv2_netioalert As Integer  '* net I/O error ratio alert threshold  *
  343.                    '*  (tenths of a percent)               *
  344.     sv2_maxauditsz As Integer  '* Maximum audit file size (KB)         *
  345.     sv2_srvheuristics As String '* performance related server switches*
  346. End Type        '* server_info_2 *
  347.  
  348. Global Const FMT_server_info_2 = "S15B1B1LP48LLLIIP255IIIIIIIS20B1P259IIIIIIIIIIIIIIIIIIIIIIP20"
  349.  
  350.  
  351. Type server_info_3
  352.     sv3_name As String * CNLEN
  353.     sv3_version_major As String * 1
  354.     sv3_version_minor As String * 1
  355.     sv3_type As Long
  356.     sv3_comment As String
  357.     sv3_ulist_mtime As Long '* User list, last modification time    *
  358.     sv3_glist_mtime As Long '* Group list, last modification time   *
  359.     sv3_alist_mtime As Long '* Access list, last modification time  *
  360.     sv3_users As Integer    '* max number of users allowed          *
  361.     sv3_disc As Integer     '* auto-disconnect timeout(in minutes)  *
  362.     sv3_alerts As String    '* alert names (semicolon separated)
  363.     sv3_security As Integer    '* SV_USERSECURITY or SV_SHARESECURITY  *
  364.     sv3_auditing As Integer    '* 0 = no auditing; nonzero = auditing  *
  365.     sv3_numadmin As Integer    '* max number of administrators allowed *
  366.     sv3_lanmask As Integer     '* bit mask representing the srv'd nets *
  367.     sv3_hidden As Integer      '* 0 = visible; nonzero = hidden      *
  368.     sv3_announce As Integer    '* visible server announce rate (sec)   *
  369.     sv3_anndelta As Integer    '* announce randomize interval (sec)    *
  370.                    
  371.     sv3_guestacct As String * UNLEN '* name of guest account           *
  372.     sv3_pad1 As String * 1          '* Word alignment pad byte         *
  373.     sv3_userpath As String     '* ASCIIZ path to user directories*
  374.     sv3_chdevs As Integer      '* max # shared character devices       *
  375.     sv3_chdevq As Integer      '* max # character device queues      *
  376.     sv3_chdevjobs As Integer   '* max # character device jobs        *
  377.     sv3_connections As Integer '* max # of connections              *
  378.     sv3_shares As Integer      '* max # of shares                            *
  379.     sv3_openfiles As Integer   '* max # of open files               *
  380.     sv3_sessopens As Integer   '* max # of open files per session     *
  381.     sv3_sessvcs As Integer     '* max # of virtual circuits per client *
  382.     sv3_sessreqs As Integer    '* max # of simul. reqs. from a client  *
  383.     sv3_opensearch As Integer  '* max # of open searches                    *
  384.     sv3_activelocks As Integer '* max # of active file locks         *
  385.     sv3_numreqbuf As Integer   '* number of server (standard) buffers  *
  386.     sv3_sizreqbuf As Integer   '* size of svr (standard) bufs (bytes)  *
  387.     sv3_numbigbuf As Integer   '* number of big (64K) buffers        *
  388.     sv3_numfiletasks As Integer'* number of file worker processes      *
  389.     sv3_alertsched As Integer  '* alert counting interval (minutes)    *
  390.     sv3_erroralert As Integer  '* error log alerting threshold       *
  391.     sv3_logonalert As Integer  '* logon violation alerting threshold   *
  392.     sv3_accessalert As Integer '* access violation alerting threshold  *
  393.     sv3_diskalert As Integer   '* low disk space alert threshold (KB)  *
  394.     sv3_netioalert As Integer  '* net I/O error ratio alert threshold  *
  395.                        '*  (tenths of a percent)               *
  396.     sv3_maxauditsz As Integer  '* Maximum audit file size (KB)       *
  397.     sv3_srvheuristics As String '* performance related server switches*
  398.     sv3_auditedevents As Long  '* Audit event control mask            *
  399.     sv3_autoprofile As Integer '* (0,1,2,3) = (NONE,LOAD,SAVE,or BOTH) *
  400.     sv3_autopath As String
  401.                    '* file pathname (where to load & save) *
  402. End Type        '* server_info_3 *
  403.  
  404. 'BUGBUG We don't know how long the alerts string is
  405. Global Const FMT_server_info_3 = "S15B1B1LP48LLLIIP255IIIIIIIS20B1P259IIIIIIIIIIIIIIIIIIIIIIP20LIP259"
  406.  
  407.  
  408. '****************************************************************
  409. '*                                                              *
  410. '*              Special values and constants                    *
  411. '*                                                              *
  412. '****************************************************************
  413.  
  414. '*
  415. '*      Mask to be applied to svX_version_major in order to obtain
  416. '*      the major version number.
  417. '*
  418.  
  419. Global Const MAJOR_VERSION_MASK = &HF
  420.  
  421. '*
  422. '*      Bit-mapped values for svX_type fields. X = 1, 2 or 3.
  423. '*
  424.  
  425. Global Const SV_TYPE_WORKSTATION = &H1
  426. Global Const SV_TYPE_SERVER = &H2
  427. Global Const SV_TYPE_SQLSERVER = &H4
  428. Global Const SV_TYPE_DOMAIN_CTRL = &H8
  429. Global Const SV_TYPE_DOMAIN_BAKCTRL = &H10
  430. Global Const SV_TYPE_TIME_SOURCE = &H20
  431. Global Const SV_TYPE_AFP = &H40
  432. Global Const SV_TYPE_NOVELL = &H80
  433. Global Const SV_TYPE_ALL = &HFFFFFFFF   '* handy for NetServerEnum2 *
  434.  
  435. '*
  436. '*      Special value for svX_disc that specifies infinite disconnect
  437. '*      time. X = 2 or 3.
  438. '*
  439.  
  440. Global Const SV_NODISC = &HFFFF '* No autodisconnect timeout enforced *
  441.  
  442. '*
  443. '*      Values of svX_security field. X = 2 or 3.
  444. '*
  445.  
  446. Global Const SV_USERSECURITY = 1
  447. Global Const SV_SHARESECURITY = 0
  448.  
  449. '*
  450. '*      Values of svX_hidden field. X = 2 or 3.
  451. '*
  452.  
  453. Global Const SV_HIDDEN = 1
  454. Global Const SV_VISIBLE = 0
  455.  
  456. '*
  457. '*      Values for parmnum parameter to NetServerSetInfo.
  458. '*
  459.  
  460. Global Const SV_COMMENT_PARMNUM = 5
  461. Global Const SV_DISC_PARMNUM = 10
  462. Global Const SV_ALERTS_PARMNUM = 11
  463. Global Const SV_HIDDEN_PARMNUM = 16
  464. Global Const SV_ANNOUNCE_PARMNUM = 17
  465. Global Const SV_ANNDELTA_PARMNUM = 18
  466. Global Const SV_ALERTSCHED_PARMNUM = 37
  467. Global Const SV_ERRORALERT_PARMNUM = 38
  468. Global Const SV_LOGONALERT_PARMNUM = 39
  469. Global Const SV_ACCESSALERT_PARMNUM = 40
  470. Global Const SV_DISKALERT_PARMNUM = 41
  471. Global Const SV_NETIOALERT_PARMNUM = 42
  472. Global Const SV_MAXAUDITSZ_PARMNUM = 43
  473.  
  474. Global Const SVI1_NUM_ELEMENTS = 5
  475. Global Const SVI2_NUM_ELEMENTS = 44
  476. Global Const SVI3_NUM_ELEMENTS = 45
  477.  
  478. '*
  479. '*      Maxmimum length for command string to NetServerAdminCommand.
  480. '*
  481.  
  482. Global Const SV_MAX_CMD_LEN = VBLMPATHLEN
  483.  
  484.  
  485.  
  486. '*
  487. '*      Masks describing AUTOPROFILE parameters
  488. '*
  489.  
  490. Global Const SW_AUTOPROF_LOAD_MASK = &H1
  491. Global Const SW_AUTOPROF_SAVE_MASK = &H2
  492.  
  493.  
  494. Global Const TRUE = -1
  495. Global Const FALSE = 0
  496.  
  497.  
  498. ' These are action messages that the player can send to dealer.
  499. ' Messages can be sent to initiate an action or in response to
  500. ' a request received from the dealer. All messages are placed
  501. ' inside a PACKET structure before transmittal.
  502. Global Const ACTN_CONNECT = 1
  503. Global Const ACTN_PLAY_HAND = 2
  504. Global Const ACTN_SURRENDER = 3
  505. Global Const ACTN_SECURITY = 4
  506. Global Const ACTN_STAY = 5
  507. Global Const ACTN_DRAW = 6
  508. Global Const ACTN_SPLIT = 7
  509. Global Const ACTN_DOUBLE = 8
  510. Global Const ACTN_TERMINATE = 9
  511. Global Const ACTN_NO_RESPONSE = 10
  512. Global Const ACTN_LOGOFF = 11
  513. Global Const ACTN_BET = 12
  514. Global Const ACTN_READY = 13
  515. Global Const ACTN_CHEAT = 14
  516. Global Const ACTN_SYNC = 15
  517.  
  518.  
  519. ' These are messages that may be received from the dealer.
  520. ' These messages appear in the Action field of a PACKET structure.
  521. Global Const MSG_MAX_PLAYERS = 1
  522. Global Const MSG_NOT_IN_HAND = 2
  523. Global Const MSG_WANT_TO_PLAY = 4
  524. Global Const MSG_YOUR_ID = 5
  525. Global Const MSG_TABLE_FULL = 6
  526. Global Const MSG_QUERY_BET = 7
  527. Global Const MSG_WANT_SECURITY = 8
  528. Global Const MSG_PLAYER_DATA = 9
  529. Global Const MSG_DEALER_DATA = 10
  530. Global Const MSG_QUERY_HS = 11
  531. Global Const MSG_QUERY_HSD = 12
  532. Global Const MSG_QUERY_HSDP = 13
  533. Global Const MSG_OVER_21 = 14
  534. Global Const MSG_BLACKJACK_PLAYER = 15
  535. Global Const MSG_LOST_GAME = 16
  536. Global Const MSG_WON_GAME = 17
  537. Global Const MSG_DRAW_GAME = 18
  538. Global Const MSG_BLACKJACK_DEALER = 19
  539. Global Const MSG_WON_SECURITY = 20
  540. Global Const MSG_LOST_SECURITY = 21
  541. Global Const MSG_TERMINATE = 22
  542. Global Const MSG_HAND_OVER = 23
  543. Global Const MSG_CHEAT = 24
  544. Global Const MSG_SPLIT = 25
  545. Global Const MSG_DEALER_OVER_21 = 26
  546. Global Const MSG_ON_LINE = 27
  547.  
  548. ' The OFSTRUCT is used with Kernel's OpenFile function
  549. Type OFSTRUCT
  550.     cBytes As String * 1
  551.     fFixedDisk As String * 1
  552.     nErrCode As Integer
  553.     reserved As String * 4
  554.     szPathName As String * 120
  555. End Type
  556.  
  557.  
  558. ' The PACKET structure is the package in which all messages are transmitted
  559. ' between dealer and player. Looking at the dealer code will show a PACKET
  560. ' structure that is defined somewhat differently. The dealer uses a nested
  561. ' structure within PACKET to represent some fields, however, since this
  562. ' feature (nested structures) is not available in VB all fields have been
  563. ' placed 'in-line'.
  564. ' Furthermore, since VB does not allow an array within a structure the Cards
  565. ' field is created as a string of 30 bytes rather than an array of 15 integers.
  566. ' The string is interpreted differently than the array of integers would have
  567. ' been interpreted. The string contains a two ascii charachters to represent
  568. ' the corressponding number in the integer array. For example
  569. ' val(mid$(Cards,i*2+1,i*2+2)) is equal to the integer version of Cards[i].
  570. Type PACKET
  571.     Action As Integer
  572.     IntValue1 As Integer
  573.     IntValue2 As Integer
  574.     Name As String * 20
  575.     hPipe As Integer
  576.     Cards As String * 30 'Why this? Because VB does not support arrays in user-types!!!
  577.     NumCards As Integer
  578.     CashOnHand As Integer
  579.     Bet As Integer
  580.     Security As Integer
  581.     State As Integer
  582.     BlackJack As Integer
  583.     Available As Integer
  584. End Type
  585.  
  586. ' size of the PACKET structure because VB does not support "sizeof()"
  587. Global Const PACKET_SIZE = 72
  588.     
  589. ' There can be a maximum of 28 players because there can be 7 physical players
  590. ' max at a blackjack table and this software allows a maximum of 4 splits per
  591. ' player. This is set to 27 because the array starts from 0.
  592. Global Const MAX_PLAYERS = 28
  593.  
  594. ' There can only be 8 players max, but we have to leave space in case
  595. ' each of them has split.
  596. Global PlayerArray(0 To MAX_PLAYERS) As PACKET
  597.  
  598. ' This is the pipe handle that is in use by the player. The pipe handle
  599. ' is used to determine the player's index in the PlayerArray
  600. Global PipeHandle As Integer
  601.  
  602. ' This is just a temporary string used in various modules to exchange
  603. ' string data with other modules
  604. Global ServerString As String
  605.  
  606. 'This instance's index in the PlayerArray array.
  607. Global CurrentPlayerIndex As Integer
  608.  
  609. ' This stores the player's name.
  610. Global PlayerName As String * 20
  611.  
  612. ' When this is 1 it means the currentplayer is being polled by the dealer
  613. ' The client should send a guaranteed response to the dealer in the
  614. ' event of OnLine being 1. This will allow the dealer to realize that
  615. ' there is no message from this client and move onto the next client.
  616. Global OnLine As Integer
  617.  
  618. ' This is the identifier of the card deck that is being used.
  619. Global DeckId As Integer
  620.  
  621.  
  622. ' This variable contains the id code of the player who is currently
  623. ' making a decision. May or may not be the CurrentPlayerIndex
  624. Global DecidingPlayerIndex As Integer
  625.  
  626. ' The default bet amount
  627. Global DefaultBet As String
  628.  
  629. ' This is when it is not any player's turn
  630. Global Const NO_PLAYER = -10
  631.  
  632. ' The width of each player's drawing region.
  633. Global Const PLAYER_REGION_WIDTH = 150
  634.  
  635. ' Controls the BetBox and BetScrollBar objects to allow spin control emulation
  636. Global Const PASSTHRU = "PASSTHRU"
  637. Global Const NOPASSTHRU = "NOPASSTHRU"
  638.  
  639. ' This tracks the current phase in which the client is operating
  640. Global GamePhase As Integer
  641. Global Const PHASE_WANT_TO_PLAY = 1
  642. Global Const PHASE_QUERY_BET_ONE = 2
  643. Global Const PHASE_QUERY_BET_TWO = 3
  644. Global Const PHASE_QUERY_SECURITY = 4
  645. Global Const PHASE_MAKE_DECISIONS = 5
  646.  
  647. ' Random chance of a sound being played (if Multimedia Windows is installed)
  648. Global Const RANDOM_SOUND = .15
  649.  
  650. Declare Function OpenFile% Lib "Kernel" (ByVal FileName As String, FileData As OFSTRUCT, ByVal mode As Integer)
  651. Declare Function FileRead% Lib "Kernel" Alias "_lread" (ByVal FileHandle As Integer, Buffer As Any, ByVal ToRead As Integer)
  652. Declare Function FileClose% Lib "Kernel" Alias "_lclose" (ByVal FileHandle As Integer)
  653. Declare Function FileWrite% Lib "Kernel" Alias "_lwrite" (ByVal FileHandle As Integer, Buffer As Any, ByVal ToWrite As Integer)
  654. Declare Function FileSeek% Lib "Kernel" Alias "_llseek" (ByVal FileHandle As Integer, ByVal Offset As Long, ByVal Origin As Integer)
  655. Declare Function DosPeekNmPipe% Lib "NETAPI.DLL" (ByVal Handle%, Buffer As Any, ByVal BufLen%, bRead%, bAvail%, Status%)
  656.  
  657. ' CARDS.DLL Declarations
  658. '
  659. Declare Function cdtDraw% Lib "cards.dll" (ByVal hdc%, ByVal x%, ByVal y%, ByVal cd%, ByVal mode%, ByVal rgbBgnd&)
  660. Declare Function cdtInit% Lib "cards.dll" (pdxCard%, pdyCard%)
  661. Declare Function cdtDrawExt% Lib "cards.dll" (ByVal hdc%, ByVal x%, ByVal y%, ByVal dx%, ByVal dy%, ByVal cd%, ByVal mode%, ByVal rgbBgnd&)
  662.  
  663. '
  664. ' Sound API from Multimedia Windows
  665. '
  666. Global Const SND_SYNC = 0
  667. Declare Function SndPlaySound Lib "mmsystem.dll" (ByVal FileName As String, ByVal Flags As Integer) As Integer
  668.  
  669. ' Name of blackjack server
  670. Global Server As String
  671.  
  672.  
  673.  
  674. '*****************************************************************
  675. '**           Microsoft Visual Basic LAN Manager Toolkit        **
  676. '**            Copyright(c) Microsoft Corp., 1991               **
  677. '*****************************************************************
  678.  
  679. '********************************************************************
  680. '*                                                                  *
  681. '*  About this file ...  WKSTA.TXT                                  *
  682. '*                                                                  *
  683. '*  This file contains information about the NetWksta APIs.         *
  684. '*                                                                  *
  685. '*      Function prototypes.                                        *
  686. '*                                                                  *
  687. '*      Data structure templates.                                   *
  688. '*                                                                  *
  689. '*      Definition of special values.                               *
  690. '*                                                                  *
  691. '*                                                                  *
  692. '*  NOTE:  You must include NETCONS.TXT before this file, since this*
  693. '*         file depends on values defined in NETCONS.TXT.           *
  694. '*                                                                  *
  695. '********************************************************************
  696.  
  697.  
  698. '****************************************************************
  699. '*                                                              *
  700. '*              Function prototypes                             *
  701. '*                                                              *
  702. '****************************************************************
  703.  
  704. Declare Function NetWkstaGetInfo% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, pcbTotalAvail%)
  705.  
  706. Declare Function NetWkstaSetInfo% Lib "NETAPI.DLL" (ByVal pszServer$, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, ByVal sParmNum%)
  707.  
  708. Declare Function NetWkstaSetUID2% Lib "NETAPI.DLL" (ByVal pszReserved$, ByVal pszDomain$, ByVal pszUserName$, ByVal pszPassword$, ByVal pszParms$, ByVal usLogoffForce%, ByVal sLevel%, ByVal pbBuffer&, ByVal cbBuffer%, pcbTotalAvail%)
  709.  
  710.  
  711. '****************************************************************
  712. '*                                                              *
  713. '*              Data structure templates                        *
  714. '*                                                              *
  715. '****************************************************************
  716.  
  717. Type wksta_info_0
  718.     wki0_reserved_1 As Integer
  719.     wki0_reserved_2 As Long
  720.     wki0_root As String
  721.     wki0_computername As String
  722.     wki0_username As String
  723.     wki0_langroup As String
  724.     wki0_ver_major As String * 1
  725.     wki0_ver_minor As String * 1
  726.     wki0_reserved_3 As Long
  727.     wki0_charwait As Integer
  728.     wki0_chartime As Long
  729.     wki0_charcount As Integer
  730.     wki0_reserved_4 As Integer
  731.     wki0_reserved_5 As Integer
  732.     wki0_keepconn As Integer
  733.     wki0_keepsearch As Integer
  734.     wki0_maxthreads As Integer
  735.     wki0_maxcmds As Integer
  736.     wki0_reserved_6 As Integer
  737.     wki0_numworkbuf As Integer
  738.     wki0_sizworkbuf As Integer
  739.     wki0_maxwrkcache As Integer
  740.     wki0_sesstimeout As Integer
  741.     wki0_sizerror As Integer
  742.     wki0_numalerts As Integer
  743.     wki0_numservices As Integer
  744.     wki0_errlogsz As Integer
  745.     wki0_printbuftime As Integer
  746.     wki0_numcharbuf As Integer
  747.     wki0_sizcharbuf As Integer
  748.     wki0_logon_server As String
  749.     wki0_wrkheuristics As String
  750.     wki0_mailslots As Integer
  751. End Type        '* wksta_info_0 *
  752.  
  753. Global Const FMT_wksta_info_0 = "ILP259P15P20P15B1B1LILIIIIIIIIIIIIIIIIIIIP15P55I"
  754.  
  755. Type wksta_info_1
  756.     wki1_reserved_1 As Integer
  757.     wki1_reserved_2 As Long
  758.     wki1_root As String
  759.     wki1_computername As String
  760.     wki1_username As String
  761.     wki1_langroup As String
  762.     wki1_ver_major As String * 1
  763.     wki1_ver_minor As String * 1
  764.     wki1_reserved_3 As Long
  765.     wki1_charwait As Integer
  766.     wki1_chartime As Long
  767.     wki1_charcount As Integer
  768.     wki1_reserved_4 As Integer
  769.     wki1_reserved_5 As Integer
  770.     wki1_keepconn As Integer
  771.     wki1_keepsearch As Integer
  772.     wki1_maxthreads As Integer
  773.     wki1_maxcmds As Integer
  774.     wki1_reserved_6 As Integer
  775.     wki1_numworkbuf As Integer
  776.     wki1_sizworkbuf As Integer
  777.     wki1_maxwrkcache As Integer
  778.     wki1_sesstimeout As Integer
  779.     wki1_sizerror As Integer
  780.     wki1_numalerts As Integer
  781.     wki1_numservices As Integer
  782.     wki1_errlogsz As Integer
  783.     wki1_printbuftime As Integer
  784.     wki1_numcharbuf As Integer
  785.     wki1_sizcharbuf As Integer
  786.     wki1_logon_server As String
  787.     wki1_wrkheuristics As String
  788.     wki1_mailslots As Integer
  789.     wki1_logon_domain As String
  790.     wki1_oth_domains As String
  791.     wki1_numdgrambuf As Integer
  792. End Type        '* wksta_info_1 *
  793.  
  794. 'BUGBUG don't know how long oth_domains may be
  795.  
  796. Global Const FMT_wksta_info_1 = "ILP259P15P20P15B1B1LILIIIIIIIIIIIIIIIIIIIP15P55IP15P159I"
  797.  
  798. Type wksta_info_10
  799.     wki10_computername As String
  800.     wki10_username As String
  801.     wki10_langroup As String
  802.     wki10_ver_major As String * 1
  803.     wki10_ver_minor As String * 1
  804.     wki10_logon_domain As String
  805.     wki10_oth_domains As String
  806. End Type        '* wksta_info_10 *
  807.  
  808.  
  809. Global Const FMT_wksta_info_10 = "P15P20P15B1B1P15P159"
  810.  
  811. '****************************************************************
  812. '*                                                              *
  813. '*              Special values and constants                    *
  814. '*                                                              *
  815. '****************************************************************
  816.  
  817.  
  818. '*
  819. '*      Constants for use as NetWkstaSetInfo parmnum parameter
  820. '*
  821.  
  822. Global Const WKSTA_CHARWAIT_PARMNUM = 10
  823. Global Const WKSTA_CHARTIME_PARMNUM = 11
  824. Global Const WKSTA_CHARCOUNT_PARMNUM = 12
  825. Global Const WKSTA_ERRLOGSZ_PARMNUM = 27
  826. Global Const WKSTA_PRINTBUFTIME_PARMNUM = 28
  827. Global Const WKSTA_WRKHEURISTICS_PARMNUM = 32
  828. Global Const WKSTA_OTHDOMAINS_PARMNUM = 35
  829.  
  830. '*
  831. '*      Definitions for NetWkstaSetUID's ucond parameter
  832. '*
  833.  
  834. Global Const WKSTA_NOFORCE = 0
  835. Global Const WKSTA_FORCE = 1
  836. Global Const WKSTA_LOTS_OF_FORCE = 2
  837. Global Const WKSTA_MAX_FORCE = 3
  838.  
  839.  
  840.  
  841. '*
  842. '*      Maximum number of additional domains
  843. '*
  844. Global Const MAX_OTH_DOMAINS = 4
  845.  
  846. ' Constants and declarations for the about dialog
  847.  
  848. Declare Function GetDeviceCaps% Lib "GDI" (ByVal hdc%, ByVal index%)
  849. Declare Function GetSystemMenu% Lib "User" (ByVal hwnd%, ByVal bRevert%)
  850. Declare Function RemoveMenu% Lib "User" (ByVal hMenu%, ByVal nPosition%, ByVal wFlags%)
  851.  
  852. Global Const NUMCOLORS = 24 ' used in GetDeviceCaps function
  853.  
  854.  
  855.